©PaperWeekly 原创 · 作者 | 苏剑林
单位 | 追一科技
研究方向 | NLP、神经网络
当前 Transformer 架构用的最多的注意力机制,全称为“Scaled Dot-Product Attention”,其中“Scaled”是因为在 转置相乘之后还要除以一个 在做 Softmax(下面均不失一般性地假设 ):
在《浅谈Transformer的初始化、参数化与标准化》[1] 中,我们已经初步解释了除以 的缘由。而在这篇文章中,笔者将从“熵不变性”的角度来理解这个缩放操作,并且得到一个新的缩放因子。在 MLM 的实验显示,新的缩放因子具有更好的长度外推性能。
熵不变性
我们将一般的 Scaled Dot-Product Attention 改写成:
其中 是缩放因子,它跟 无关,但原则上可以跟长度 、维度 等参数有关,目前主流的就是 。为了使得模型结果能够更好地泛化到未知长度,Attention 机制的设计应该使得 尽量具备熵不变性。怎么理解这句话呢?首先,泛化到未知长度,指的是预测长度和训练不一致时也能有不错的效果,比如 训练然后外推到 测试。我们知道,使用 RoPE 之类的相对位置编码的模型,对长度具有比较好的外推性,但我们依然可以通过更好的设计来增强这种外推性,比如熵不变性就是其中之一。具体来说, 可以视为 为条件、 为随机变量的条件分布,它的熵为:
熵不变性是指, 应该对长度 不敏感。更具体一点,就是如果在已有的 token 基础上,再补充几个 token,那么新算出来各个 自然也会有所改变,但我们希望 不要有太大改变。为什么希望熵不变呢?我们知道,熵是不确定性的度量(参考《“熵”不起:从熵、最大熵原理到最大熵模型(一)》[2]),换个角度想,我们可以将不确定性视为注意力的“聚焦程度”:如果熵为 0,那么注意力将聚焦到某一个 token 上,如果熵为 ,那么注意力均匀分布到所有 token 上。我们希望熵不变,是希望引入新的 token 后,已有的 token 依旧能同样地聚焦到原来的 token 上,而不希望新 token 的引入过多地“分摊”了原有的注意力,导致求和结果显著发生变化。
根据熵不变性以及一些合理的假设,我们可以得到一个新的缩放因子,从而得到一种 Scaled Dot-Product Attention:
这里的 是一个跟 都无关的超参数,详细推导过程我们下一节再介绍。为了称呼上的方便,这里将式(1)描述的常规 Scaled Dot-Product Attention 称为“Attention-O”(Original),而式(4)以及下面的式(5)描述的变体称为“Attention-E”(Entropy Invariance)。可能有读者对引入了一个新参数感到不满意,其实这个不难解决。我们知道当前主流的预训练长度就是 512,所以我们假设主流的参数都是为 调试好的,所以当 的时候,上式应退化为普通的 Scaled Dot-Product Attention,即 ,推出 ,代入上式整理后得到:
为了验证该改动是否真如预期那样能提高 Transformer 的外推效果,笔者分别用 Attention-O 和 Attention-E 分别训练了一个 RoFormer small 版本,训练任务为 MLM,训练长度为 64,然后在不同长度的验证集下比较 MLM 的准确率,结果如下:
从实验结果可以看出,在与训练长度一致 的情况下,Attention-O 和 Attention-E 的效果是很接近的,但是外推到更大的测试长度时,则明显拉开了差距,比如 时 Attention-E 要比 Attention-O 高 10 个百分点以上的准确率,可真不是一星半点了。
这一节我们介绍式(4)的推导过程。事实上,推导过程和假设都跟《最小熵原理(六):词向量的维度应该怎么选择?》中的几乎是一样的。
要注意,我们仅仅是要做一个半定量的估计,以确定适合的 来抵消部分长度的影响,让熵完全不受长度影响是做不到的。所以,我们可以做一些假设,比如假设 是一个随机变量,那么可以写出:
留意到一般情况下 都是 Layer Norm 出来之后再接一个 Dense 层,而 Dense 层接近正交变换,所以我们近似地假设 都是模长为 的向量,所以 ;然后进一步假设 均匀地分布在半径为 的球面上,那么对 的期望可以转化为对 夹角的期望,即:
因此,为了抵消长度 的影响,我们让 ,从而得出 。当然,我们知道这只是估计,所以没必要保留系数 0.24 了,倒不如直接引入超参数 ,使得:
在阅读 ACL 2022 的投稿论文时,发现上面有一篇《Overcoming a Theoretical Limitation of Self-Attention》[3],给出了相近的结果(论文4.3节的公式1):不过,该论文并没有太深刻的理论分析,只是构建了两个特殊的 case 来测试 Attention 的性能,测试发现往缩放因子乘上 有助于泛化长度,所以就提出来了。然而可以看出,如果按照默认约定 用自然对数的话,那么上式很明显是不合理的,因为当 较大时,缩放因子过大,会导致严重的梯度消失。只不过该论文只是在机器翻译上做实验,测得都是 级别的序列,所以就没有显示出梯度消失问题。
本文从熵不变性的角度重新推导了 Scaled Dot-Product Attention 中的 Scale 操作,得到了一个新的缩放因子。初步的试验结果显示,新的缩放因子不改变已有的训练性能,并且对长度外推具有更好的结果。[1] https://kexue.fm/archives/8620
[2] https://kexue.fm/archives/3534[3] https://openreview.net/forum?id=qc9O2EtrMI-感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧